package be.kdg.bombermanunlimited.client.gui;
/*
 * Deze klasse maakt afbeeldingen met een witte achtergrond doorzichtig waar ze wit zijn. 
 * 
 * Hierdoor krijg je geen randkleuren oid mee bij het tekenen en is wat onder de sprite 
 * 	ligt ook zichtbaar. Dit oogt veel mooier
 * 
 * Het is ook mogelijk om afbeeldingen te nemen die al transparant zijn, in dit geval
 * komen ze in de else{} deel van de lus terecht en gebeurt er niks mee.
 * Door een transparentizer klasse te maken hebben we echter geen boodschap aan image editing en doet 
 * de GUI dit voor ons
 */




import java.awt.Color;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.FilteredImageSource;
import java.awt.image.ImageFilter;
import java.awt.image.ImageProducer;
import java.awt.image.RGBImageFilter;

public class Transparentizer {
	public static Image makeColorTransparent(Image im, final Color color) {
		ImageFilter filter = new RGBImageFilter() {
			// Zet de alpha bits als opaque
			public int markerRGB = color.getRGB() | 0xFF000000;

			public final int filterRGB(int x, int y, int rgb) {
				if ((rgb | 0xFF000000) == markerRGB) {
					// 1OO% transparantie voor de kleur color (met markerRGB)
					return 0x00FFFFFF & rgb;
				} else {
					// reeds transparent, niks meer doen
					return rgb;
				}
			}
		};

		ImageProducer ip = new FilteredImageSource(im.getSource(), filter);
		return Toolkit.getDefaultToolkit().createImage(ip);
	}

}
